#include <iostream>
using namespace std;

struct RINT
{
public:
    RINT(int i):_i(i){};
private:
    int _i;
    friend RINT operator+ (const RINT& left, const RINT& right);
    friend RINT operator+ (const RINT& rint);
    friend RINT operator- (const RINT& left, const RINT& right);
    friend RINT operator- (const RINT& rint);
    friend RINT operator* (const RINT& left, const RINT& right);
    friend RINT operator/ (const RINT& rint, const RINT& right);
    friend RINT operator% (const RINT& left, const RINT& right);

    friend ostream& operator << (ostream& os, const RINT& rint);
    
};
RINT operator+(const RINT& a)
{
    return a;
}
RINT operator+(const RINT& left, const RINT& right)
{
    return RINT(left._i + right._i);
}
RINT operator-(const RINT& a)
{
    return RINT(-a._i);
}
RINT operator- (const RINT& left, const RINT& right)
{
    return RINT(left._i - right._i);
}
RINT operator* (const RINT& left, const RINT& right)
{
    return RINT(left._i * right._i);
}
RINT operator/ (const RINT& left,const RINT& right)
{
    return RINT(left._i / right._i);
}
RINT operator% (const RINT& left, const RINT& right)
{
    return RINT(left._i % right._i);
}

ostream& operator << (ostream& os, const RINT& rint)
{
    return os << rint._i;
}
int main()
{
    RINT a(100);
    RINT b(200);
    cout << "a = " << a << endl;
    cout << "b = " << b << endl;
    cout << "a+b = " << a+b << endl;
    cout << "a*b = " << a*b << endl;
    cout << "a/b = " << a/b << endl;
    cout << "a%b = " << a%b << endl;

}

    
    
    
    
